/*
 
 */
package com.jme3.gde.gui.extra.xam.model.impl;

import com.jme3.gde.gui.extra.xam.model.NiftyAttribute;
import java.util.List;
import org.w3c.dom.Element;
import com.jme3.gde.gui.extra.xam.model.AttributesType;
import com.jme3.gde.gui.extra.xam.model.EffectsType;
import com.jme3.gde.gui.extra.xam.model.InteractType;
import com.jme3.gde.gui.extra.xam.model.NiftyModel;
import com.jme3.gde.gui.extra.xam.model.NiftyQName;
import com.jme3.gde.gui.extra.xam.model.StyleType;
import com.jme3.gde.gui.extra.xam.model.spi.NiftyComponentBase;
import com.jme3.gde.gui.extra.xam.model.visitor.NiftyComponentVisitor;	

/**
 * Implementation for domain component styleType.
 * 
 * @author cuongnguyen
 */
// Generated by XAM AutoGen Tool v0.2
public class StyleTypeImpl extends NiftyComponentBase implements StyleType {

    public StyleTypeImpl(NiftyModel model, Element element) {
        super(model, element);
    }
    
    public StyleTypeImpl(NiftyModel model) {
        this(model, createElementNS(model, NiftyQName.STYLETYPE));
    }

    // attributes

    public String getId() {
        return getAttribute(NiftyAttribute.ID);
    }

    public void setId(String id) {
        setAttribute(ID_PROPERTY, NiftyAttribute.ID, id);
    }

    public String getBase() {
        return getAttribute(NiftyAttribute.BASE);
    }

    public void setBase(String base) {
        setAttribute(BASE_PROPERTY, NiftyAttribute.BASE, base);
    }

    // child elements

    public List<AttributesType> getAttributesTypes() {
        return getChildren(AttributesType.class);
    }

    public void addAttributesType(AttributesType attributesType) {
        appendChild(ATTRIBUTESTYPE_PROPERTY, attributesType);
    }

    public void removeAttributesType(AttributesType attributesType) {
        removeChild(ATTRIBUTESTYPE_PROPERTY, attributesType);
    }

    public List<InteractType> getInteractTypes() {
        return getChildren(InteractType.class);
    }

    public void addInteractType(InteractType interactType) {
        appendChild(INTERACTTYPE_PROPERTY, interactType);
    }

    public void removeInteractType(InteractType interactType) {
        removeChild(INTERACTTYPE_PROPERTY, interactType);
    }

    public List<EffectsType> getEffectsTypes() {
        return getChildren(EffectsType.class);
    }

    public void addEffectsType(EffectsType effectsType) {
        appendChild(EFFECTSTYPE_PROPERTY, effectsType);
    }

    public void removeEffectsType(EffectsType effectsType) {
        removeChild(EFFECTSTYPE_PROPERTY, effectsType);
    }

    public void accept(NiftyComponentVisitor visitor) {
        visitor.visit(this);
    }

}